/*****************************
 *@file: FontItem
 *@author: 陈吕唐
 *@desc: 简单显示文本内容Item
 *@date: 2024-03-21	13:50
 *****************************/
import { _decorator, Component, Label } from 'cc';
const { ccclass, property } = _decorator;

@ccclass('FontItem')
export class FontItem extends Component {
    /****************************************************************************************************************
     *Readonly 常量
     ****************************************************************************************************************/
    /****************************************************************************************************************
     *Property 定义变量
     ****************************************************************************************************************/
    private _value: string = undefined!;
    /***************************************************************
     *PropertyUI 引用的控件
     ***************************************************************/
    @property({ group: { name: 'UI', id: '1' }, type: Label, tooltip: `文本组件` })
    private label: Label = undefined!;
    /****************************************************************************************************************
     * Lifecycle 生命周期相关方法
     ****************************************************************************************************************/
    protected onEnable(): void {
        this.updateView(this.value);
    }
    /****************************************************************************************************************
     * Public 公有方法
     ****************************************************************************************************************/
    /**
     * 对象池回收时使用
     */
    public unuse() {
        this.node.setPosition(0, 0, 0);
    }
    /****************************************************************************************************************
     * private 私有方法
     ****************************************************************************************************************/
    private updateView(value: string = this.value) {
        if (!value) { return; }
        if (!this.enabledInHierarchy) { return; }

        if (this.label) {
            this.label.string = value;
        }
    }
    /****************************************************************************************************************
     * Property Get && Set 属性的 get && set 函数
     ****************************************************************************************************************/
    public get value(): string {
        return this._value;
    }
    public set value(value: string) {
        this._value = value;
        this.updateView(value);
    }
}


